package com.gj.fazhi.service.impl;

import com.gj.fazhi.enumpackge.StatusEnum2;
import com.gj.fazhi.mapper.FaZhiMapper;
import com.gj.fazhi.model.*;
import com.gj.fazhi.service.FaZhiService;
import com.gj.utli.AllRecords;
import com.gj.utli.ResultBuilderVo;
import com.gj.utli.ResultVo;

import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.validation.Valid;
import java.util.Date;
import java.util.List;

/**
 * Created by Tangyunhen on 2021-06-24.
 */
@Service
public class FaZhiServiceImpl implements FaZhiService {
    @Autowired
    private FaZhiMapper faZhiMapper;

    @Override
    public ResultVo queryPage(FaZhiSelectVo faZhiSelectVo) {
          //查询数据
        List<FaZhiVo> faZhiVoList = faZhiMapper.queryData(faZhiSelectVo);
     /* for (FaZhiVo faZhiVo : faZhiVoList){
         *//* if(faZhiVo.getStatus()==1){
              faZhiVo.setStatusName("启用");
          }else if (faZhiVo.getStatus()==0){
              faZhiVo.setStatusName("禁用");
          }*//*
              Boolean status = faZhiVo.getStatus();
              Integer status2=status==true?1:0;
          faZhiVo.setStatusName(StatusEnum2.getStatusName(status2));
      }*/

        //查询数量
        int count= faZhiMapper.queryCount(faZhiSelectVo);
        AllRecords allRecords=new AllRecords();
        allRecords.setPageIndex(faZhiSelectVo.getPageIndex());
        allRecords.setPageSize(faZhiSelectVo.getPageSize());
        allRecords.setTotalNumber(count);
        allRecords.setDataList(faZhiVoList);
        allRecords.resetTotalNumber(count);
        return ResultBuilderVo.success(allRecords);
    }



   @Override
    @Transactional
    public ResultVo add(@Valid FaZhiAddVo faZhiAddVo) {
       //验证法人是否存在
       int count= faZhiMapper.queryLegalPersonByCode(faZhiAddVo.getLegalPersonCode());
       if (count==0){
           return ResultBuilderVo.error("法人不存在");
       }
        //备件编码是否存在
       int sount=faZhiMapper.queryFaZhiByLegalPersonCodeAndSpartCode(faZhiAddVo.getLegalPersonCode(),faZhiAddVo.getSpartCode());
       if (sount==0){
           return ResultBuilderVo.error("备件编码已经存在");
       }
        //法人下的编码是否已经存在
       FaZhiVo faZhiVo =new FaZhiVo();
       BeanUtils.copyProperties(faZhiAddVo, faZhiVo);//把左边参数赋值给右边
        Date nowDate =new Date();
        faZhiVo.setCreateTime(nowDate);
        faZhiVo.setCreateName("项羽");
        faZhiVo.setUpdateTime(nowDate);
        faZhiVo.setUpdateName("项羽");
        faZhiMapper.insert(faZhiVo);
        return ResultBuilderVo.success();
    }

    @Override
    @Transactional
    public ResultVo update(@Valid FaZhiUpdateVo faZhiUpdateVo) {
        FaZhiVo faZhiVos=faZhiMapper.updateByID(faZhiUpdateVo.getId());
        if (faZhiVos==null){
            ResultBuilderVo.error("id不能为空");
        }
        FaZhiVo faZhiVo=new FaZhiVo();
        BeanUtils.copyProperties(faZhiUpdateVo,faZhiVo);
        faZhiMapper.update(faZhiVo);
        return ResultBuilderVo.success();

    }


}
